import request from '@/config/axios'
import type { Dayjs } from 'dayjs'

/** 编码生成规则组成信息 */
export interface CodePart {
  partId: number // 分段ID
  ruleId: number // 规则ID
  partIndex: number // 分段序号
  partName: string // 分段名称
  partLength: number // 分段长度
  partType: string // 分段类型，DATETIME：日期时间，FIXEDCHAR：固定字符，SERIALNUMBER：流水号
  fixedCharacter: string // 固定字符
  dateFormat: string // 日期格式
  seriaStartNo: number // 流水号起始值
  seriaStep: number // 流水号步长
  cycleFlag: string // 流水号是否循环
  cycleMethod: string // 循环方式，YEAR：按年，MONTH：按月，DAY：按天，HOUR：按小时，MINITE：按分钟
  createDept: number // 创建部门
  remark: string // 备注
}

// 编码生成规则组成 API
export const CodePartApi = {
  // 查询编码生成规则组成分页
  getCodePartPage: async (params: any) => {
    return await request.get({ url: `/auto/code-part/page`, params })
  },

  // 查询编码生成规则组成详情
  getCodePart: async (id: number) => {
    return await request.get({ url: `/auto/code-part/get?id=` + id })
  },

  // 新增编码生成规则组成
  createCodePart: async (data: CodePart) => {
    return await request.post({ url: `/auto/code-part/create`, data })
  },

  // 修改编码生成规则组成
  updateCodePart: async (data: CodePart) => {
    return await request.put({ url: `/auto/code-part/update`, data })
  },

  // 删除编码生成规则组成
  deleteCodePart: async (id: number) => {
    return await request.delete({ url: `/auto/code-part/delete?id=` + id })
  },

  /** 批量删除编码生成规则组成 */
  deleteCodePartList: async (ids: number[]) => {
    return await request.delete({ url: `/auto/code-part/delete-list?ids=${ids.join(',')}` })
  },

  // 导出编码生成规则组成 Excel
  exportCodePart: async (params) => {
    return await request.download({ url: `/auto/code-part/export-excel`, params })
  }
}
